﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using acessaDB;
using Frame;
using System.Data;
using System.Configuration;
using FirebirdSql.Data.FirebirdClient;
using Estrutura;


namespace Banco
{

    public class BD_Diretivas
    {
        #region variaveis_globais

        acessaDB.conectaDBFireBird fireBird = new conectaDBFireBird();
        string conectionString = System.Configuration.ConfigurationManager.AppSettings["FireBirdConnectionLocal"];
        string usuario = string.Empty;

        #endregion

        #region construtor

        public BD_Diretivas()
        {
            if (System.Configuration.ConfigurationManager.AppSettings["ambiente"] == "PROD")
                conectionString = System.Configuration.ConfigurationManager.AppSettings["FireBirdConnectionProd"];
        }
        public BD_Diretivas(string usu_Login)
        {
            if (System.Configuration.ConfigurationManager.AppSettings["ambiente"] == "PROD")
                conectionString = System.Configuration.ConfigurationManager.AppSettings["FireBirdConnectionProd"];
            usuario = usu_Login;
        }

        #endregion

        #region metodos

        public DataSet _retorna_Diretivas(
                                                string CTM_CAD_DIRETIVA_ID,
                                                string ENTIDADE_ID,
                                                string CTM_DIRETIVA_CRITERIO_ID,
                                                string CTM_DIRETIVA_TIPO_ID,
                                                string CDI_DATA_EFETIVIDADE,
                                                string CDI_DATA_PUBLICACAO,
                                                string CDI_DIRETIVA,
                                                string CDI_NUMERO,
                                                string CDI_PARTE,
                                                string CDI_REVISAO,
                                                string CDI_OBSERVACAO
                                                )
        {

            if (string.IsNullOrEmpty(CTM_CAD_DIRETIVA_ID)) CTM_CAD_DIRETIVA_ID = "'0'";
            if (string.IsNullOrEmpty(ENTIDADE_ID)) ENTIDADE_ID = "'0'";
            if (string.IsNullOrEmpty(CTM_DIRETIVA_CRITERIO_ID)) CTM_DIRETIVA_CRITERIO_ID = "'0'";
            if (string.IsNullOrEmpty(CTM_DIRETIVA_TIPO_ID)) CTM_DIRETIVA_TIPO_ID = "'0'";
            if (string.IsNullOrEmpty(CDI_DATA_EFETIVIDADE)) CDI_DATA_EFETIVIDADE = Util.retonarAspas(Util.formataData(System.DateTime.Now.ToString()));
            if (string.IsNullOrEmpty(CDI_DATA_PUBLICACAO)) CDI_DATA_PUBLICACAO = Util.retonarAspas(Util.formataData(System.DateTime.Now.ToString()));
            if (string.IsNullOrEmpty(CDI_DIRETIVA)) CDI_DIRETIVA = "''";
            if (string.IsNullOrEmpty(CDI_NUMERO)) CDI_NUMERO = "''";
            if (string.IsNullOrEmpty(CDI_PARTE)) CDI_PARTE = "''";
            if (string.IsNullOrEmpty(CDI_REVISAO)) CDI_REVISAO = "''";
            if (string.IsNullOrEmpty(CDI_OBSERVACAO)) CDI_OBSERVACAO = "''";

            string sql = "SELECT " +
                                  "CTM_CAD_DIRETIVA.CTM_CAD_DIRETIVA_ID, " +
                                  "CTM_CAD_DIRETIVA.ENTIDADE_ID, " +
                                  "CTM_CAD_DIRETIVA.CTM_DIRETIVA_CRITERIO_ID, " +
                                  "CTM_CAD_DIRETIVA.CTM_DIRETIVA_TIPO_ID, " +
                                  "CTM_CAD_DIRETIVA.CDI_DATA_EFETIVIDADE, " +
                                  "CTM_CAD_DIRETIVA.CDI_DATA_PUBLICACAO, " +
                                  "CTM_CAD_DIRETIVA.CDI_DIRETIVA, " +
                                  "CTM_CAD_DIRETIVA.CDI_NUMERO, " +
                                  "CTM_CAD_DIRETIVA.CDI_PARTE, " +
                                  "CTM_CAD_DIRETIVA.CDI_REVISAO, " +
                                  "CTM_CAD_DIRETIVA.CDI_OBSERVACAO " +
                            "FROM CTM_CAD_DIRETIVA " +
                            "LEFT JOIN CTM_DIRETIVA_CRITERIO ON CTM_DIRETIVA_CRITERIO.CTM_DIRETIVA_CRITERIO_ID = CTM_CAD_DIRETIVA.CTM_DIRETIVA_CRITERIO_ID " +
                            "LEFT JOIN ENTIDADE ON ENTIDADE.ENTIDADE_ID = CTM_CAD_DIRETIVA.ENTIDADE_ID " +
                            "LEFT JOIN CTM_DIRETIVA_TIPO ON CTM_DIRETIVA_TIPO.CTM_DIRETIVA_TIPO_ID = CTM_CAD_DIRETIVA.CTM_DIRETIVA_TIPO_ID " +
                            "WHERE " +
                            "      (CTM_CAD_DIRETIVA.CTM_CAD_DIRETIVA_ID             = " + CTM_CAD_DIRETIVA_ID + "  OR " + CTM_CAD_DIRETIVA_ID + " = '0') AND " +
                            "      (CTM_CAD_DIRETIVA.ENTIDADE_ID                     = " + ENTIDADE_ID + "  OR " + ENTIDADE_ID + " = '0') AND " +
                            "      (CTM_CAD_DIRETIVA.CTM_DIRETIVA_CRITERIO_ID        = " + CTM_DIRETIVA_CRITERIO_ID + "  OR " + CTM_DIRETIVA_CRITERIO_ID + " = '0') AND " +
                            "      (CTM_CAD_DIRETIVA.CTM_DIRETIVA_TIPO_ID            = " + CTM_DIRETIVA_TIPO_ID + "  OR " + CTM_DIRETIVA_TIPO_ID + " = '0') AND " +
                            "      (CTM_CAD_DIRETIVA.CDI_DATA_EFETIVIDADE            = " + CDI_DATA_EFETIVIDADE + "  OR " + CDI_DATA_EFETIVIDADE + " = '') AND " +
                            "      (CTM_CAD_DIRETIVA.CDI_DATA_PUBLICACAO             = " + CDI_DATA_PUBLICACAO + "  OR " + CDI_DATA_PUBLICACAO + " = '') AND " +
                            "      (CTM_CAD_DIRETIVA.CDI_DIRETIVA                    = " + CDI_DIRETIVA + "  OR " + CDI_DIRETIVA + " = '') AND " +
                            "      (CTM_CAD_DIRETIVA.CDI_NUMERO                      = " + CDI_NUMERO + "  OR " + CDI_NUMERO + " = '') AND " +
                            "      (CTM_CAD_DIRETIVA.CDI_PARTE                       = " + CDI_PARTE + "  OR " + CDI_PARTE + " = '') AND " +
                            "      (CTM_CAD_DIRETIVA.CDI_REVISAO                     = " + CDI_REVISAO + "  OR " + CDI_REVISAO + " = '') AND " +
                            "      (CTM_CAD_DIRETIVA.CDI_OBSERVACAO                  = " + CDI_OBSERVACAO + "  OR " + CDI_OBSERVACAO + " = '') ";

            DataSet dsRetorno = fireBird.retornaDataSet(sql, conectionString);
            return dsRetorno;

        }


        public List<ES_Diretivas> _obter_Diretivas(
                                                string CTM_CAD_DIRETIVA_ID,
                                                string ENTIDADE_ID,
                                                string CTM_DIRETIVA_CRITERIO_ID,
                                                string CTM_DIRETIVA_TIPO_ID,
                                                string CDI_DATA_EFETIVIDADE,
                                                string CDI_DATA_PUBLICACAO,
                                                string CDI_DIRETIVA,
                                                string CDI_NUMERO,
                                                string CDI_PARTE,
                                                string CDI_REVISAO,
                                                string CDI_OBSERVACAO,
                                                string ORDER_BY_CLAUSE
                                                )
        {

            if (string.IsNullOrEmpty(CTM_CAD_DIRETIVA_ID)) CTM_CAD_DIRETIVA_ID = "0";
            if (string.IsNullOrEmpty(ENTIDADE_ID)) ENTIDADE_ID = "0";
            if (string.IsNullOrEmpty(CTM_DIRETIVA_CRITERIO_ID)) CTM_DIRETIVA_CRITERIO_ID = "0";
            if (string.IsNullOrEmpty(CTM_DIRETIVA_TIPO_ID)) CTM_DIRETIVA_TIPO_ID = "0";
            if (string.IsNullOrEmpty(CDI_DATA_EFETIVIDADE)) CDI_DATA_EFETIVIDADE = Util.retonarAspas(Util.formataData(System.DateTime.Now.ToString()));
            if (string.IsNullOrEmpty(CDI_DATA_PUBLICACAO)) CDI_DATA_PUBLICACAO = Util.retonarAspas(Util.formataData(System.DateTime.Now.ToString()));
            if (string.IsNullOrEmpty(CDI_DIRETIVA)) CDI_DIRETIVA = "''"; else CDI_DIRETIVA = Util.retonarAspas(CDI_DIRETIVA + "%");
            if (string.IsNullOrEmpty(CDI_NUMERO)) CDI_NUMERO = "''"; else CDI_NUMERO = Util.retonarAspas(CDI_NUMERO + "%");
            if (string.IsNullOrEmpty(CDI_PARTE)) CDI_PARTE = "''"; else CDI_PARTE = Util.retonarAspas(CDI_PARTE + "%");
            if (string.IsNullOrEmpty(CDI_REVISAO)) CDI_REVISAO = "''"; else CDI_REVISAO = Util.retonarAspas(CDI_REVISAO + "%");
            if (string.IsNullOrEmpty(CDI_OBSERVACAO)) CDI_OBSERVACAO = "''"; else CDI_OBSERVACAO = Util.retonarAspas(CDI_OBSERVACAO + "%");
            if (string.IsNullOrEmpty(ORDER_BY_CLAUSE)) ORDER_BY_CLAUSE = "CTM_CAD_DIRETIVA.CTM_CAD_DIRETIVA_ID DESC";

            string sql = "SELECT " +
                                  "CTM_CAD_DIRETIVA.CTM_CAD_DIRETIVA_ID, " +
                                  "CTM_CAD_DIRETIVA.ENTIDADE_ID, " +
                                  "ENTIDADE.ENT_RAZAO_SOCIAL, "+
                                  "CTM_CAD_DIRETIVA.CTM_DIRETIVA_CRITERIO_ID, " +
                                  "CTM_CAD_DIRETIVA.CTM_DIRETIVA_TIPO_ID, " +
                                  "CTM_DIRETIVA_TIPO.CDI_DESCRICAO, "+
                                  "CTM_CAD_DIRETIVA.CDI_DATA_EFETIVIDADE, " +
                                  "CTM_CAD_DIRETIVA.CDI_DATA_PUBLICACAO, " +
                                  "CTM_CAD_DIRETIVA.CDI_DIRETIVA, " +
                                  "CTM_CAD_DIRETIVA.CDI_NUMERO, " +
                                  "CTM_CAD_DIRETIVA.CDI_PARTE, " +
                                  "CTM_CAD_DIRETIVA.CDI_REVISAO, " +
                                  "CTM_CAD_DIRETIVA.CDI_OBSERVACAO " +
                            "FROM CTM_CAD_DIRETIVA " +
                            "LEFT JOIN CTM_DIRETIVA_CRITERIO ON CTM_DIRETIVA_CRITERIO.CTM_DIRETIVA_CRITERIO_ID = CTM_CAD_DIRETIVA.CTM_DIRETIVA_CRITERIO_ID " +
                            "LEFT JOIN ENTIDADE ON ENTIDADE.ENTIDADE_ID = CTM_CAD_DIRETIVA.ENTIDADE_ID " +
                            "LEFT JOIN CTM_DIRETIVA_TIPO ON CTM_DIRETIVA_TIPO.CTM_DIRETIVA_TIPO_ID = CTM_CAD_DIRETIVA.CTM_DIRETIVA_TIPO_ID " +
                            "WHERE " +
                            "      (CTM_CAD_DIRETIVA.CTM_CAD_DIRETIVA_ID             = " + CTM_CAD_DIRETIVA_ID + "  OR " + CTM_CAD_DIRETIVA_ID + " = '0') AND " +
                            "      (CTM_CAD_DIRETIVA.ENTIDADE_ID                     = " + ENTIDADE_ID + "  OR " + ENTIDADE_ID + " = '0') AND " +
                            "      (CTM_CAD_DIRETIVA.CTM_DIRETIVA_CRITERIO_ID        = " + CTM_DIRETIVA_CRITERIO_ID + "  OR " + CTM_DIRETIVA_CRITERIO_ID + " = '0') AND " +
                            "      (CTM_CAD_DIRETIVA.CTM_DIRETIVA_TIPO_ID            = " + CTM_DIRETIVA_TIPO_ID + "  OR " + CTM_DIRETIVA_TIPO_ID + " = '0') AND " +
                            //"      (CTM_CAD_DIRETIVA.CDI_DATA_EFETIVIDADE            = " + CDI_DATA_EFETIVIDADE + "  OR " + CDI_DATA_EFETIVIDADE + " = '') AND " +
                            //"      (CTM_CAD_DIRETIVA.CDI_DATA_PUBLICACAO             = " + CDI_DATA_PUBLICACAO + "  OR " + CDI_DATA_PUBLICACAO + " = '') AND " +
                            "      (CTM_CAD_DIRETIVA.CDI_DIRETIVA                    LIKE " + CDI_DIRETIVA + "  OR " + CDI_DIRETIVA + " = '') AND " +
                            "      (CTM_CAD_DIRETIVA.CDI_NUMERO                      LIKE " + CDI_NUMERO + "  OR " + CDI_NUMERO + " = '') AND " +
                            "      (CTM_CAD_DIRETIVA.CDI_PARTE                       LIKE " + CDI_PARTE + "  OR " + CDI_PARTE + " = '') AND " +
                            "      (CTM_CAD_DIRETIVA.CDI_REVISAO                     LIKE " + CDI_REVISAO + "  OR " + CDI_REVISAO + " = '') AND " +
                            "      (CTM_CAD_DIRETIVA.CDI_OBSERVACAO                  LIKE " + CDI_OBSERVACAO + "  OR " + CDI_OBSERVACAO + " = '') "+
                            " ORDER BY " + ORDER_BY_CLAUSE;
            List<ES_Diretivas> lista = new List<ES_Diretivas>();
            FbConnection fbConexao = new FbConnection(conectionString);
            FbDataReader dr = fireBird.retornaDataReader(sql, conectionString, fbConexao);
            try
            {
                while (dr.Read())
                {
                    ES_Diretivas item = new ES_Diretivas();
                    item.CTM_CAD_DIRETIVA_ID = dr["CTM_CAD_DIRETIVA_ID"].ToString();
                    item.ENTIDADE_ID = dr["ENTIDADE_ID"].ToString();
                    item.ENT_RAZAO_SOCIAL = dr["ENT_RAZAO_SOCIAL"].ToString();
                    item.CTM_DIRETIVA_CRITERIO_ID = dr["CTM_DIRETIVA_CRITERIO_ID"].ToString();
                    item.CTM_DIRETIVA_TIPO_ID = dr["CTM_DIRETIVA_TIPO_ID"].ToString();
                    item.CDI_DESCRICAO = dr["CDI_DESCRICAO"].ToString();
                    item.CDI_DATA_EFETIVIDADE = Util.formataData(dr["CDI_DATA_EFETIVIDADE"].ToString(),"dd/MM/yyyy");
                    item.CDI_DATA_PUBLICACAO = Util.formataData(dr["CDI_DATA_PUBLICACAO"].ToString(), "dd/MM/yyyy");
                    item.CDI_DIRETIVA = dr["CDI_DIRETIVA"].ToString();
                    item.CDI_NUMERO = dr["CDI_NUMERO"].ToString();
                    item.CDI_PARTE = dr["CDI_PARTE"].ToString();
                    item.CDI_REVISAO = dr["CDI_REVISAO"].ToString();
                    item.CDI_OBSERVACAO = dr["CDI_OBSERVACAO"].ToString();
                    lista.Add(item);

                }
                return lista;
            }
            finally
            {
                fireBird.fecharConexao(fbConexao);
            }
        }


        public ES_Diretivas _obter_Diretivas_by_id(string CTM_CAD_DIRETIVA_ID)
        {
            if (string.IsNullOrEmpty(CTM_CAD_DIRETIVA_ID)) CTM_CAD_DIRETIVA_ID = "'0'";
            string sql = "SELECT " +
                                  "CTM_CAD_DIRETIVA.CTM_CAD_DIRETIVA_ID, " +
                                  "CTM_CAD_DIRETIVA.ENTIDADE_ID, " +
                                  "CTM_CAD_DIRETIVA.CTM_DIRETIVA_CRITERIO_ID, " +
                                  "CTM_CAD_DIRETIVA.CTM_DIRETIVA_TIPO_ID, " +
                                  "CTM_CAD_DIRETIVA.CDI_DATA_EFETIVIDADE, " +
                                  "CTM_CAD_DIRETIVA.CDI_DATA_PUBLICACAO, " +
                                  "CTM_CAD_DIRETIVA.CDI_DIRETIVA, " +
                                  "CTM_CAD_DIRETIVA.CDI_NUMERO, " +
                                  "CTM_CAD_DIRETIVA.CDI_PARTE, " +
                                  "CTM_CAD_DIRETIVA.CDI_REVISAO, " +
                                  "CTM_CAD_DIRETIVA.CDI_OBSERVACAO " +
                            "FROM CTM_CAD_DIRETIVA " +
                            "LEFT JOIN CTM_DIRETIVA_CRITERIO ON CTM_DIRETIVA_CRITERIO.CTM_DIRETIVA_CRITERIO_ID = CTM_CAD_DIRETIVA.CTM_DIRETIVA_CRITERIO_ID " +
                            "LEFT JOIN ENTIDADE ON ENTIDADE.ENTIDADE_ID = CTM_CAD_DIRETIVA.ENTIDADE_ID " +
                            "LEFT JOIN CTM_DIRETIVA_TIPO ON CTM_DIRETIVA_TIPO.CTM_DIRETIVA_TIPO_ID = CTM_CAD_DIRETIVA.CTM_DIRETIVA_TIPO_ID " +
                            "WHERE " +
                            "      (CTM_CAD_DIRETIVA.CTM_CAD_DIRETIVA_ID             = " + CTM_CAD_DIRETIVA_ID + "  OR " + CTM_CAD_DIRETIVA_ID + " = '0') ";
            
            ES_Diretivas item = new ES_Diretivas();
            FbConnection fbConexao = new FbConnection(conectionString);
            FbDataReader dr = fireBird.retornaDataReader(sql, conectionString, fbConexao);
            try
            {
                while (dr.Read())
                {
                    
                    item.CTM_CAD_DIRETIVA_ID = dr["CTM_CAD_DIRETIVA_ID"].ToString();
                    item.ENTIDADE_ID = dr["ENTIDADE_ID"].ToString();
                    item.CTM_DIRETIVA_CRITERIO_ID = dr["CTM_DIRETIVA_CRITERIO_ID"].ToString();
                    item.CTM_DIRETIVA_TIPO_ID = dr["CTM_DIRETIVA_TIPO_ID"].ToString();
                    item.CDI_DATA_EFETIVIDADE = dr["CDI_DATA_EFETIVIDADE"].ToString();
                    item.CDI_DATA_PUBLICACAO = dr["CDI_DATA_PUBLICACAO"].ToString();
                    item.CDI_DIRETIVA = dr["CDI_DIRETIVA"].ToString();
                    item.CDI_NUMERO = dr["CDI_NUMERO"].ToString();
                    item.CDI_PARTE = dr["CDI_PARTE"].ToString();
                    item.CDI_REVISAO = dr["CDI_REVISAO"].ToString();
                    item.CDI_OBSERVACAO = dr["CDI_OBSERVACAO"].ToString();                    
                }
                return item;
            }
            finally
            {
                fireBird.fecharConexao(fbConexao);
            }
        }

        public ES_Diretivas _obter_Diretivas_by_CDI_NUMENRO(string CDI_NUMENRO)
        {
            if (string.IsNullOrEmpty(CDI_NUMENRO)) CDI_NUMENRO = "'0'"; else CDI_NUMENRO = Util.retonarAspas(CDI_NUMENRO);
            string sql = "SELECT " +
                                  "CTM_CAD_DIRETIVA.CTM_CAD_DIRETIVA_ID, " +
                                  "CTM_CAD_DIRETIVA.ENTIDADE_ID, " +
                                  "CTM_CAD_DIRETIVA.CTM_DIRETIVA_CRITERIO_ID, " +
                                  "CTM_CAD_DIRETIVA.CTM_DIRETIVA_TIPO_ID, " +
                                  "CTM_CAD_DIRETIVA.CDI_DATA_EFETIVIDADE, " +
                                  "CTM_CAD_DIRETIVA.CDI_DATA_PUBLICACAO, " +
                                  "CTM_CAD_DIRETIVA.CDI_DIRETIVA, " +
                                  "CTM_CAD_DIRETIVA.CDI_NUMERO, " +
                                  "CTM_CAD_DIRETIVA.CDI_PARTE, " +
                                  "CTM_CAD_DIRETIVA.CDI_REVISAO, " +
                                  "CTM_CAD_DIRETIVA.CDI_OBSERVACAO " +
                            "FROM CTM_CAD_DIRETIVA " +
                            "LEFT JOIN CTM_DIRETIVA_CRITERIO ON CTM_DIRETIVA_CRITERIO.CTM_DIRETIVA_CRITERIO_ID = CTM_CAD_DIRETIVA.CTM_DIRETIVA_CRITERIO_ID " +
                            "LEFT JOIN ENTIDADE ON ENTIDADE.ENTIDADE_ID = CTM_CAD_DIRETIVA.ENTIDADE_ID " +
                            "LEFT JOIN CTM_DIRETIVA_TIPO ON CTM_DIRETIVA_TIPO.CTM_DIRETIVA_TIPO_ID = CTM_CAD_DIRETIVA.CTM_DIRETIVA_TIPO_ID " +
                            "WHERE CTM_CAD_DIRETIVA.CDI_NUMERO = " + CDI_NUMENRO;

            ES_Diretivas item = new ES_Diretivas();
            FbConnection fbConexao = new FbConnection(conectionString);
            FbDataReader dr = fireBird.retornaDataReader(sql, conectionString, fbConexao);
            try
            {
                while (dr.Read())
                {

                    item.CTM_CAD_DIRETIVA_ID = dr["CTM_CAD_DIRETIVA_ID"].ToString();
                    item.ENTIDADE_ID = dr["ENTIDADE_ID"].ToString();
                    item.CTM_DIRETIVA_CRITERIO_ID = dr["CTM_DIRETIVA_CRITERIO_ID"].ToString();
                    item.CTM_DIRETIVA_TIPO_ID = dr["CTM_DIRETIVA_TIPO_ID"].ToString();
                    item.CDI_DATA_EFETIVIDADE = dr["CDI_DATA_EFETIVIDADE"].ToString();
                    item.CDI_DATA_PUBLICACAO = dr["CDI_DATA_PUBLICACAO"].ToString();
                    item.CDI_DIRETIVA = dr["CDI_DIRETIVA"].ToString();
                    item.CDI_NUMERO = dr["CDI_NUMERO"].ToString();
                    item.CDI_PARTE = dr["CDI_PARTE"].ToString();
                    item.CDI_REVISAO = dr["CDI_REVISAO"].ToString();
                    item.CDI_OBSERVACAO = dr["CDI_OBSERVACAO"].ToString();
                }
                return item;
            }
            finally
            {
                fireBird.fecharConexao(fbConexao);
            }
        }

        public void _inserir_Diretivas(
                                                string CTM_CAD_DIRETIVA_ID,
                                                string ENTIDADE_ID,
                                                string CTM_DIRETIVA_CRITERIO_ID,
                                                string CTM_DIRETIVA_TIPO_ID,
                                                string CDI_DATA_EFETIVIDADE,
                                                string CDI_DATA_PUBLICACAO,
                                                string CDI_DIRETIVA,
                                                string CDI_NUMERO,
                                                string CDI_PARTE,
                                                string CDI_REVISAO,
                                                string CDI_OBSERVACAO
                                                )
        {

            string sql = " INSERT INTO CTM_CAD_DIRETIVA " +
                         "      ( " +
                         "          ENTIDADE_ID                    , " +
                         "          CTM_DIRETIVA_CRITERIO_ID       , " +
                         "          CTM_DIRETIVA_TIPO_ID           , " +
                         "          CDI_DATA_EFETIVIDADE           , " +
                         "          CDI_DATA_PUBLICACAO            , " +
                         "          CDI_DIRETIVA                   , " +
                         "          CDI_NUMERO                     , " +
                         "          CDI_PARTE                      , " +
                         "          CDI_REVISAO                    , " +
                         "          CDI_OBSERVACAO                   " +
                 "      )" +
                 "  VALUES " +
                 "      ( " +
                              ENTIDADE_ID + ", " +
                              CTM_DIRETIVA_CRITERIO_ID + ", " +
                              CTM_DIRETIVA_TIPO_ID + ", " +
                              Util.retonarAspas(Util.formataData(CDI_DATA_EFETIVIDADE), true) + ", " +
                              Util.retonarAspas(Util.formataData(CDI_DATA_PUBLICACAO), true) + ", " +
                              Util.retonarAspas(CDI_DIRETIVA, true) + ", " +
                              Util.retonarAspas(CDI_NUMERO, true) + ", " +
                              Util.retonarAspas(CDI_PARTE, true) + ", " +
                              Util.retonarAspas(CDI_REVISAO, true) + ", " +
                              Util.retonarAspas(CDI_OBSERVACAO, true) +
                 "      )";
            try
            {
                fireBird._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        public void _atualizar_Diretivas(
                                                string CTM_CAD_DIRETIVA_ID,
                                                string ENTIDADE_ID,
                                                string CTM_DIRETIVA_CRITERIO_ID,
                                                string CTM_DIRETIVA_TIPO_ID,
                                                string CDI_DATA_EFETIVIDADE,
                                                string CDI_DATA_PUBLICACAO,
                                                string CDI_DIRETIVA,
                                                string CDI_NUMERO,
                                                string CDI_PARTE,
                                                string CDI_REVISAO,
                                                string CDI_OBSERVACAO
                                                )
        {

            string sql = " UPDATE CTM_CAD_DIRETIVA SET " +
                         "      ENTIDADE_ID                     = " + ENTIDADE_ID + ", " +
                         "      CTM_DIRETIVA_CRITERIO_ID        = " + CTM_DIRETIVA_CRITERIO_ID + ", " +
                         "      CTM_DIRETIVA_TIPO_ID            = " + CTM_DIRETIVA_TIPO_ID + ", " +
                         "      CDI_DATA_EFETIVIDADE            = " + Util.retonarAspas(Util.formataData(CDI_DATA_EFETIVIDADE), true) + ", " +
                         "      CDI_DATA_PUBLICACAO             = " + Util.retonarAspas(Util.formataData(CDI_DATA_PUBLICACAO), true) + ", " +
                         "      CDI_DIRETIVA                    = " + Util.retonarAspas(CDI_DIRETIVA, true) + ", " +
                         "      CDI_NUMERO                      = " + Util.retonarAspas(CDI_NUMERO, true) + ", " +
                         "      CDI_PARTE                       = " + Util.retonarAspas(CDI_PARTE, true) + ", " +
                         "      CDI_REVISAO                     = " + Util.retonarAspas(CDI_REVISAO, true) + ", " +
                         "      CDI_OBSERVACAO                  = " + Util.retonarAspas(CDI_OBSERVACAO, true) +
                         " WHERE CTM_CAD_DIRETIVA_ID =  " + CTM_CAD_DIRETIVA_ID;
            try
            {
                fireBird._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        public void _excluir_Diretivas(string CTM_CAD_DIRETIVA_ID)
        {
            string sql = "DELETE FROM CTM_CAD_DIRETIVA WHERE CTM_CAD_DIRETIVA_ID = " + CTM_CAD_DIRETIVA_ID;
            try
            {
                fireBird._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        #endregion
    }
}
